JavaScript 样式规则
命名
总体来说,函数名称为 functionNames
,变量名称为 variableNames
,类名称为 ClassNames
,方法名称为 methodNames
,常量值名称为 CONSTANT_VALUES
,文件名称为 filenames
。
代码格式
由于分号的隐式插入,大括号应与其内容放置在同一行。
推荐:
if (something) {
// 执行某项任务
} else {
// 执行另外一项任务
}
只有在单行数组和对象初始器可以在写同一行时方可使用这两项。左括号前和右括号后都不应有空格。
推荐:
var array = [1, 2, 3];
var object = {a: 1, b: 2, c: 3};
多行数组和对象初始器需进行单行缩进,与代码块一样,其括号与内容应位于同一行。
推荐:
var array = [
'Joe <joe@email.com>',
'Sal <sal@email.com>',
'Murr <murr@email.com>',
'Q <q@email.com>'
];
var object = {
id: 'foo',
class: 'foo-important',
name: 'notification'
};
插入语
仅在需要时使用。
仅在语法和语义需要时少量、概括性地使用。
字符串
为了保持连贯性,应使用单引号 '
而不是双引号 "
。这在创建含有 HTML 的字符串时尤其有帮助。
推荐:
var element = '<button class="btn">Click Me</button>';
此规则较为明显的一个例外是在 JSON 对象中: JSON 要求使用双引号。
技巧提示
真假布尔表达式
以下为假的布尔表达式:
- Null
- undefined
- ‘’ the empty string
- 0 the number
注意区分,以下为真的表达式:
- ‘0’ the string
- [] the empty array
- {} the empty object
三元条件运算符
不强制规定,但建议使用三元条件运算符编写简洁代码,避免使用以下代码:
不推荐:
if (val) {
return foo();
} else {
return bar();
}
推荐:
return val ? foo() : bar();
&&
和 ||
这些二元布尔运算符为简化形式,会计算至最后一个已计算项。 ||
被称为默认的运算符,这是因为不应以下列方式编写代码:
不推荐:
function foo(name) {
var theName;
if (name) {
theName = name;
} else {
theName = 'John';
}
}
推荐:
function foo(name) {
var theName = name || 'John';
}
&& 也被用于缩减代码
不推荐:
if (node) {
if (node.kids) {
console.log(node.kids);
}
}
推荐:
if (node && node.kids) {
console.log(node.kids);
}